

window.onload = function () {
    fullTable(emList);
}

//将数组内容填充表格数据

function fullTable (array){
    let str = "";
    array.forEach(n=>{
        str+=`<tr><td>${n.code}</td><td>${n.name}</td>
                <td>${n.money}</td><td>${n.sex}</td><td>
                <input type="button" value="删除" onclick="del(${n.code})">
                <input type="button" value="修改" onclick="findById(${n.code})">
</td></tr>`;
    });
    $("data").innerHTML=str;
}
//删除
function del(code) {
//找到指定编号的下标
    let index = emList.findIndex(n=>n.code == code);
    //删除指定下标的内容
    emList.splice(index,1);
    fullTable(emList);

}

//显示添加框
function addDiv() {
    $("add").style.visibility="visible";
}
//判断名字输入是否合格
function checkName(){
    return addNorm(/^[\u4e00-\u9fa5]{2,}$/,"nameTxts","nameSpan","名字书写不合规范，必须是2个和2个以上的汉子组成");
}
//判断输入编号是否合格
function checkCode() {
    return addNorm(/^\d{1,}$/,"codeTxt","codeSpan","编号书写不规范，必须是数字，并且不能重复");
}
//判断输入的工资是否规范
function checkMoney(){
    return addNorm(/^\d{1,}$/,"moneyTxt","moneySpan","工资书写不规范，必须是数字");
}
//判断输入的性别是否规范
function checkSex() {
    return addNorm( /^男$|^女&/,"sexTxt","sexSpan","性别填写错误，只能填男或女");
}
//判断提交是否合格
function addNorm(rexp,textId,spanId,errorInfo){

    if(rexp.test($(textId).value)){
        $(spanId).innerHTML = "验证通过";
        $(spanId).style.color = "green";
        return true;
    }
    else{
        $(spanId).innerHTML = errorInfo;
        $(spanId).style.color = "red";
        return false;
    }
}
//判断编号是否重复
function checCodes(code) {
    var newList=emList.find(n=>n.code==code.value);
    console.log(newList);
    if (newList==null){
        return false;
    }
    else { return true;}

}
//添加
function add() {
    if (checkName() == checkCode() && checkMoney() && checkSex()) {
        if (checCodes($("codeTxt"))) {
            $("codeSpan").innerHTML = "编号重复";
            console.log("2");
        } else {
            console.log("3");
            var obj = {
                code: $("codeTxt").value,
                name: $("nameTxts").value,
                money: $("moneyTxt").value,
                sex: $("sexTxt").value
            };
            emList.push(obj);
            fullTable(emList);
            $("add").style.visibility = "hidden";
        }
    }
}
//查询
function finByName() {
    //得到文本框的内容
    var nameStr = $("nameTxt").value;
    var newList = emList.filter(n=>n.name.indexOf(nameStr)!=-1);
    console.log(newList);
    fullTable(newList);
}
//按id查询
function findById(code) {
 //   按员工对象查找员工
 var obj=emList.find(n=>n.code==code);
// 将员工对象信息赋值给网页元素
    $("codeSpan1").innerHTML=obj.code;
    $("nameSpan1").innerHTML=obj.name;
    $("updateMoneyTxt").value=obj.money;
    $("sexSpan1").innerHTML=obj.sex;
    $("updateDiv").style.visibility="visible";
}

//修改
function update() {
//    找到要修改的对象
  var obj = emList.find(n=>n.code==$("codeSpan1").innerHTML);
  if (/^\d{1,}$/.test($("updateMoneyTxt").value)){
  obj.money=parseInt($("updateMoneyTxt").value);
  fullTable(emList);
  $("updateDiv").style.visibility="hidden";
}
  else {
      $("moneySpan1").innerHTML = "只能书写正数字";
      $("moneySpan1").style.color = "red";
  }
}
var sotr = true;
//排序
function sortEmplouee(sortName) {
    if (sotr) {
        emList.sort((a, b) => a[sortName] - b[sortName]);
    }else {
        emList.sort((a, b) => b[sortName] - a[sortName]);
    }
    sotr=!sotr;
    fullTable(emList);
}

function $(id) {
    return document.getElementById(id);
}
